import pickle

import cv2
import pyautogui
import numpy as np
from datetime import datetime
from socket import *
from PIL import Image

# 创建一个用来申请链接的socket
s = socket()
# s申请链接 带上对方的ip地址和端口号
s.connect((gethostname(),8890))
# monitor = s.recv(1024).decode() # 接受消息
monitor = pickle.loads(s.recv(1024))

while True:
    # 获取当前时间
    current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    # 设置捕获对象
    screenshot = pyautogui.screenshot(region=monitor)# 设置截图区域
    screenshot_np = np.array(screenshot) # 把图片信息数据转化为NumPy数组，输入的是BGR格式
    # 将 BGR 转换为 RGB (OpenCV 默认使用 RGB)  BGR图像颜色空间是：蓝，绿，红  RGB图像颜色空间是：红，绿，蓝
    screenshot_np = cv2.cvtColor(screenshot_np, cv2.COLOR_BGR2RGB)
    np.save('image.npy', screenshot_np)
    image = Image.fromarray(screenshot_np)
    image.save('image.png')
    s.sendall(screenshot_np.tobytes())

    # 在窗口内显示实时时间 在图像上绘制文本
    a=cv2.putText(screenshot_np, current_time, (10, 70), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 0, 0), 2, cv2.LINE_AA)
    # s.send(pickle.dumps(a))
    # s.send(pickle.dumps(screenshot_np))

